package com.nexgo.payment.trans.operator.list;

import com.nexgo.payment.BasePresenter;
import com.nexgo.payment.BaseView;
import com.nexgo.payment.databases.OperatorInfo;

import java.util.List;

/**
 * 操作员操作契约接口类
 *
 * @author 谭忠扬-YuriTam
 * @time 2017年08月07日
 */
public interface OperatorListContract {

    interface View extends BaseView<OperatorListPresenter> {

        /**
         * 初始化当前操作员
         *
         * @param operatorNo 操作员编号
         */
        void showCurrentOperator(String operatorNo);

        /**
         * 获取操作员列表
         *
         * @param operatorList 返回操作员列表
         */
        void showOperatorList(List<OperatorInfo> operatorList);

        /**
         * 跳转去添加操作员界面
         */
        void intent2AddOperator();

        /**
         * 跳转去编辑操作员界面
         *
         * @param operatorNo 编号
         */
        void intent2EditOperator(String operatorNo);

        /**
         * 提示信息
         *
         * @param message 描述信息
         */
        void showTips(String message);

        /**
         * 确定删除弹出层
         *
         * @param operatorNo 提示要删除的编号
         */
        void showDialog(String operatorNo);
    }

    interface Presenter extends BasePresenter {

        /**
         * 获取操作员列表
         */
        void getOperatorList();

        /**
         * 添加操作员
         */
        void addOperatorInfo();

        /**
         * 编辑操作员
         *
         * @param operatorNo 编号
         */
        void editOperatorInfo(String operatorNo);

        /**
         * 提示删除
         *
         * @param operatorNo 编号
         */
        void confirmDelete(String operatorNo);

        /**
         * 删除操作员信息
         *
         * @param operatorNo 编号
         */
        void deleteOperatorInfo(String operatorNo);

        /**
         * 判断是否为主管操作员
         *
         * @return 返回结果
         */
        boolean isAdminOperator();

        /**
         * 判断是否当前操作员
         *
         * @param operatorNo 编号
         * @return 返回结果
         */
        boolean isSelfOperator(String operatorNo);
    }
}
